﻿#define   _CRT_SECURE_NO_WARNINGS

////冒泡排序
//#include<stdio.h>
//int main() {
//	int n, a[300];
//	scanf("%d", &n);
//	for (int i = 0; i < n; i++) {
//		scanf("%d", &a[i]);
//	}
//	for (int i = 0; i < n; i++) {
//		//int max = a[0];
//		for (int j = 0; j < n - i - 1; j++) {
//			//if (max < a[j]) {
//			//	int temp = a[j];
//			//	a[j] = a[j + 1];
//			//	a[j + 1] = temp;
//			//}
//			if (a[j] > a[j + 1]) {
//					int temp = a[j];
//				a[j] = a[j + 1];
//				a[j + 1] = temp;
//			}
//		}
//	}
//	for (int i = 0; i < n; i++) {
//		printf("%d ", a[i]);
//	}
//}



////选择排序
//#include<stdio.h>
//int main() {
//	int a[20];
//	for (int i = 0; i < 10; i++) {
//		scanf("%d", &a[i]);
//	}
//	int max = a[0];
//	for (int i = 0; i < 9; i++) {
//		int minindex = i;
//		for (int j = i+1; j < 10; j++) {
//			if (a[j]<a[minindex])
//				minindex = j;
//		}
//		if (minindex != i) {
//			int temp = a[i];
//			a[i] = a[minindex];
//			a[minindex] = temp;
//
//		}
//	}
//	for (int i = 0; i < 10; i++) {
//		printf("%d ", a[i]);
//	}
//
//
//
//	return 0;
//}


//#include<stdio.h>
//int main() {
//	int a = 2;
//	a *= 2 + 3;
//	printf("%d", a);
//
//	return 0;
//}
//
//#include <stdio.h>
//int main()
//{
//	int x;
//	float y;
//
//	// ⽤⼾输⼊ " -13.45e12# 0"
//	scanf("%d", &x);
//	printf("%d\n", x);
//	scanf("%f", &y);
//	printf("%f\n", y);
//	return 0;
//}

//
//#include <stdio.h>
//
//int main() {
//    int a, b, c;
//    printf("请按照格式输入数据（如：整数 整数 整数 整数）：");
//    scanf("%d%d%*d%d", &a, &b, &c);
//    printf("a = %d, b = %d, c = %d\n", a, b, c);
//    return 0;
//}

//#include<stdio.h>
//void fun(int *a, int *b) {
//	int t = *a;
//	*a = *b;
//	*b = t;
//}
//int main() {
//	int x = 1, y = 3;
//	fun(&x, &y);
//	printf("%d %d", x, y);
//	return 0;
//}
//#include<stdio.h>
//void fun(int a, int b) {
//	int t = a;
//	a = b;
//	b = t;
//	printf("%d %d", a, b);
//}
//int main() {
//	int x = 1, y = 3;
//	fun(x, y);
//	
//	return 0;
//}


//#include<stdio.h>
//int main() {
//	int a1[3] = { 1,2,3 };
//	int a2[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 };
//	printf("%d %d %d %d %d", a1[2], *(a1 + 2), a2[2][3], (*(a2 + 2))[3], *(*(a2 + 2) + 3));
//	return 0;
//}


//#include <stdio.h>
//// 正常的带参数宏定义
//#define SQUARE(x) x * x
//// 错误的带参数宏定义（宏名和参数之间有空格）
//#define WRONG_SQUARE (x) x * x
//int main() {
//    int a = SQUARE(5);
//    int b;
//    // 注意这里，按照错误的宏定义方式进行替换
//    b = WRONG_SQUARE(5);
//    printf("正常宏定义计算结果：%d\n", a);
//    printf("错误宏定义计算结果：%d\n", b);
//    return 0;
//}



//迭代
// 
// 
//#include<stdio.h>
//int F(int x) {
//	int res = 1;
//	for (int i = 1; i <=x; i++) {
//		res *= i;
//	}
//	return res;
//}
//int main() {
//	int x = 0;
//	scanf("%d", &x);
//	int res = F(x);
//	printf("%d\n", res);
//	return 0;
//}




//#include <stdio.h>
//#include <stdlib.h>
//
//int main() {
//    // 使用malloc分配一个int类型变量的内存空间
//    int* p = (int*)malloc(sizeof(int));
//    if (p == NULL) {
//        printf("内存分配失败！\n");
//        return 1;
//    }
//
//    // 对分配的内存空间进行赋值操作
//    *p = 10;
//    printf("通过malloc分配内存存储的值为：%d\n", *p);
//
//    // 释放内存，避免内存泄漏
//    free(p);
//    return 0;
//}